home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 4
/
United Public Domain Gold 4.iso
/
fredfish
/
ff.0527.dms
/
ff.0527.adf
/
ToolManager
/
Source
/
ToolManager.h
< prev
Wrap
C/C++ Source or Header
|
1991-08-05
|
6KB
|
157 lines
/*
* ToolManager.h V1.4
*
* main include file
*
* (c) 1991 by Stefan Becker
*
*/
#include <exec/types.h>
#define abs
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <exec/libraries.h>
#include <exec/memory.h>
#include <dos/dostags.h>
#include <intuition/gadgetclass.h>
#include <libraries/iffparse.h>
#include <workbench/icon.h>
#include <workbench/startup.h>
/* Prototypes for system functions */
#include <clib/alib_protos.h>
#include <clib/asl_protos.h>
#include <clib/commodities_protos.h>
#include <clib/dos_protos.h>
#include <clib/exec_protos.h>
#include <clib/gadtools_protos.h>
#include <clib/graphics_protos.h>
#include <clib/icon_protos.h>
#include <clib/iffparse_protos.h>
#include <clib/intuition_protos.h>
#include <clib/wb_protos.h>
#undef HotKey /* Needed for -mRR */
__stkargs CxObj *HotKey(UBYTE *, struct MsgPort *, long);
/* Version number & dates */
#define TM_VERSION "1.4"
#define TM_CRYEAR "1991"
#define TM_DATE "09.07.1991"
/* Buffer lenghts */
#define BUFLEN 100 /* Buffer length for one config line */
#define NAMELEN 256 /* Buffer length for a file name */
/* Data for one config file entry */
struct ConfigBlock {
UBYTE cb_Type; /* Type of tool (s. below) */
UBYTE cb_Flags; /* Flags (see below) */
ULONG cb_Stack; /* Stack size */
ULONG cb_IconX; /* Icon X Position */
ULONG cb_IconY; /* Icon Y Position */
char cb_Alias[BUFLEN]; /* Alias name */
char cb_RealName[BUFLEN]; /* Real name */
char cb_WorkDir[BUFLEN]; /* Current directory */
char cb_HotKey[BUFLEN]; /* HotKey description */
char cb_IconFile[BUFLEN]; /* Icon file name */
char cb_TempLine[BUFLEN+20]; /* temporary line */
};
/* Entry for tool list */
struct ToolNode {
struct Node tn_Node; /* Node, contains name */
UBYTE tn_Type; /* Type of tool (s. below) */
UBYTE tn_Flags; /* Flags (see below) */
char *tn_RealName; /* Real name of tool */
char *tn_WorkDir; /* Name of current dir. */
BPTR tn_DirLock; /* Directory lock */
ULONG tn_Stack; /* Stack size */
struct AppMenuItem *tn_MenuItem; /* Pointer to WB menu item */
char *tn_IconFile; /* Name of icon file */
struct DiskObject *tn_Icon; /* Pointer to icon data */
struct AppIcon *tn_AppIcon; /* Pointer to WB icon */
char *tn_HotKey; /* HotKey description */
CxObj *tn_CxObj; /* HotKey's CX Object */
};
/* Constants for tn_Type */
#define TNTYPE_DUMMY 0 /* Non-functional dummy tool */
#define TNTYPE_CLI 1 /* CLI tool */
#define TNTYPE_WB 2 /* WB tool */
/* Flags for tn_Flags */
#define TNFLAGS_MENU 0x01 /* Tool has a WB menu item */
#define TNFLAGS_ICON 0x02 /* Tool has a WB icon */
#define TNFLAGS_DOBJ 0x04 /* The icon is a DiskObject */
#define TNFLAGS_NARG 0x08 /* Start tool with NO paramters */
/* Prototypes for library functions */
void NewList(struct List *);
struct ToolNode *GetHead(struct List *);
struct ToolNode *GetSucc(struct ToolNode *);
/* Prototypes for program functions */
/* config.c */
void SetConfigFileName(char *);
void InitConfigBlock(struct ConfigBlock *);
void ReadConfigFile(void);
void WriteConfigFile(struct Window *w);
/* editwindow.c */
void OpenEditWindow(ULONG, ULONG, ULONG, struct ToolNode *);
void CloseEditWindow(void);
void HandleEditWinEvent(void);
/* ifficon.c */
struct DiskObject *LoadIFFIcon(char *);
void FreeIFFIcon(struct DiskObject *);
/* mainloop.c */
void SetQuitFlag(void);
void mainloop(void);
/* starttools.c */
void StartTool(struct ToolNode *, struct AppMessage *);
/* toollist.c */
BOOL WBAddToolNode(struct WBArg *, int);
BOOL AddToolNode(struct ConfigBlock *,BPTR);
void RemToolNode(struct ToolNode *tn);
void RemoveTools(void);
/* toolmanager.c */
void cleanup(int);
/* statuswindow.c */
void OpenStatusWindow(void);
void CloseStatusWindow(void);
void HandleStatWinEvent(void);
void RefreshStatusWindow(void);
void AttachToolList(void);
void DetachToolList(void);
/* Global variables */
extern struct MsgPort *MyMP;
extern BPTR StartupCD;
extern BOOL ShowQuitReq;
extern BOOL running;
extern struct List ToolList;
extern UWORD ToolCount;
extern ULONG wbactive;
extern char MyName[];
extern UBYTE CopyrightNote[];
extern struct DiskObject *MyIcon;
extern LONG IconXPos,IconYPos;
extern BOOL ShowIcon;
extern struct AppIcon *MyAppIcon;
extern struct AppMenuItem *OTWAppMenuItem;
extern BOOL ShowStatusWindow;
extern ULONG statwinsig;
extern ULONG editwinsig;
extern struct MsgPort *MyBrokerPort;
extern struct Broker *MyBroker;
extern char DefaultPopUpHotKey[];
extern char *PopUpHotKey;
/* Global defines */
#define STACKMIN 4096 /* default stack */
#define DEFPROGNAME "ToolManager" /* default program name */
#define DEFCONFIGNAME "S:ToolManager.config" /* default config file name */
#define DEFPOPUPHOTKEY "rcommand help" /* default pop up hot key */
#define WDRAGBARLEN 60 /* Width of Close & Drag gadget */